#!/usr/bin/env bash

# 阿拉伯数字18作为异常退出码
check='[ $? -eq 0 ] || exit 18'


version=`openresty -v`
if [[ $? -ne 0 ]];
then
  eval "$check" && echo '安装openresity'
  eval "$check" && echo '步骤一：安装导入 GPG 公钥时所需的几个依赖包（整个安装过程完成后可以随时删除它们）：'
  eval "$check" && apt -y install gnupg ca-certificates
  eval "$check" && echo '步骤二：导入 GPG 密钥，如果地址失效可以参考下面mongo安装直接导入公钥：'
  eval "$check" && wget -O - https://openresty.org/package/pubkey.gpg | apt-key add -
  eval "$check" && echo '步骤三：添加官方 APT 仓库。'
  # eval "$check" && release="$(lsb_release -sc)"
  eval "$check" && echo '因为我的发行版是21，OpenResty® 暂不提供官方的预编译包，所以这里先写成发行版18的代号'
  eval "$check" && release="bionic"
  eval "$check" && echo '获取计算机类型'
  eval "$check" && type=`uname -m`
  if [[ "$type" == "x86_64" || "$type" == "amd64" ]]
  then
    echo "计算机类型:"$type
    echo '对于 x86_64 或 amd64 系统，可以使用下面的命令：'
    eval "$check" && echo "deb http://openresty.org/package/ubuntu $release main" \
        | tee /etc/apt/sources.list.d/openresty.list
  elif (( "$type" == "arm64" || "$type" == "aarch64" ))
  then
    echo "计算机类型:"$type
    echo '对于 arm64 或 aarch64 系统，则可以使用下面的命令:'
    eval "$check" && echo "deb http://openresty.org/package/arm64/ubuntu $release main" \
        | tee /etc/apt/sources.list.d/openresty.list
  else
    echo "系统不支持OpenResty,退出";
    exit;
  fi
  eval "$check" && echo '步骤四：更新 APT 索引：'
  eval "$check" && apt update
  eval "$check" && echo '然后就可以像下面这样安装软件包，比如 openresty：'
  eval "$check" && apt -y install openresty
  # 这个包同时也推荐安装 openresty-opm 和 openresty-restydoc 包，所以后面两个包会缺省安装上。 如果你不想自动关联安装，可以用下面方法关闭自动关联安装：
  # eval "$check" && apt -y install --no-install-recommends openresty
else
  echo '已经安装了openresty:$(version)'
  echo '如不能使用，可手动安装openresty:1.19'
fi

eval "$check" && echo "resty安装完成！！！"